﻿// -----------------------------------------------------------------------
// <copyright file="DirectoryInfoTest.cs" company="Company">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

using System;
using Company.IO.Interfaces;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Company.System.IO.IntegrationTests
{
    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public partial class DirectoryInfoTest : TestBase<IDirectoryInfo>
    {
        /// <summary>
        ///A test for Constructor
        ///</summary>
        [TestMethod]
        [Ignore]
        public void Constructor_SystemConverterNotNullAndDirectoryInfoValid_SuccessfullyCreation()
        {
            //Arrange
            ISystemIoConverter systemIoConverter = new SystemIoConverter();
            var directoryInfo = new global::System.IO.DirectoryInfo(_SLocalPath);

            //Act
            IDirectoryInfo target = new DirectoryInfo(systemIoConverter, directoryInfo);

            //Assert
            Assert.IsInstanceOfType(target, typeof (DirectoryInfo));
        }

        /// <summary>
        ///A test for Directory Constructor
        ///</summary>
        [TestMethod]
        [Ignore]
        public void Constructor_Default_SuccessfullyCreation()
        {
            //Arrange
            var directoryInfo = new global::System.IO.DirectoryInfo(_SLocalPath);

            //Act
            IDirectoryInfo target = new DirectoryInfo(directoryInfo);

            //Assert
            Assert.IsInstanceOfType(target, typeof (DirectoryInfo));
        }

        /// <summary>
        ///A test for Directory Constructor
        ///</summary>
        [TestMethod]
        [ExpectedException(typeof (ArgumentNullException))]
        [Ignore]
        public void Constructor_SystemConverterNull_ArgumentNullException()
        {
            //Arrange
            var directoryInfo = new global::System.IO.DirectoryInfo(_SLocalPath);
            ISystemIoConverter systemIoConverter = null;

            //Act
            IDirectoryInfo target = new DirectoryInfo(systemIoConverter, directoryInfo);

            //Assert
        }
    }
}